package com.excilys.gwtfirst.domain.model.constraints;

import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.validation.Constraint;

@Target({ METHOD, FIELD, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = UserPasswordValidator.class)
@Documented
public @interface Condition {

	static enum Type {
		LC("a-z"), UC("A-Z"), NUM("0-9");

		String pattern;

		Type(String pattern) {
			this.pattern = pattern;
		}
	}

	Type target();

	int nb();
}
